(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=Antoine Potten, Candyghost Title=DVDZone2 (Français) Description=Version française de DVDZone2 Site=http://www.dvdzone2.com Language=FR Version= Requires=3.5.0 Comments= Rewritten by Antoine Potten Adapted by Candyghost Fixed Lenght + added subtitles License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. | GetInfo=1 [Options] ***************************************************) program DVDZone2_FR; var MovieName: string; function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; var i: Integer; begin result := -1; if StartAt < 0 then StartAt := 0; for i := StartAt to List.Count-1 do if Pos(Pattern, List.GetString(i)) <> 0 then begin result := i; Break; end; end; procedure AnalyzePage(Address: string); var Line, MovieItem, MovieTitle, MovieAddress: string; TitlePos, BeginPos, EndPos: Integer; List: TStringList; begin Line := GetPage(Address); PickTreeClear; if Pos(' : 0 item(s) found
', Line) = 0 then begin PickTreeAdd('Search results from DVDZone2', ''); BeginPos := Pos('', Line); EndPos := Pos('', Line); Line := Copy(Line, BeginPos, EndPos - BeginPos); List := TStringList.Create; repeat TitlePos := Pos('', MovieItem) + 2; EndPos := Pos('', MovieItem); MovieTitle := Copy(MovieItem, BeginPos, EndPos - BeginPos); List.Text := MovieItem; MovieItem := Trim(List.GetString(3)); if MovieItem <> '' then MovieTitle := MovieTitle + ' [' + MovieItem + ']'; MovieItem := Trim(List.GetString(9)); if MovieItem <> '' then MovieTitle := MovieTitle + ' (' + MovieItem + ')'; PickTreeAdd(MovieTitle, MovieAddress); Delete(Line, 1, 25); end; until TitlePos = 0; List.Free; end; if PickTreeExec(Address) then AnalyzeMoviePage(Address); end; procedure AnalyzeMoviePage(Address: string); var Line, Value, FullValue: string; LineNr: Integer; BeginPos, EndPos: Integer; Page: TStringList; begin Line := GetPage(Address); BeginPos := Pos('', Line); EndPos := Pos('', Line); Line := Copy(Line, BeginPos, EndPos - BeginPos); // title BeginPos := Pos('', Line); Delete(Line, 1, BeginPos); BeginPos := Pos('>', Line) + 1; EndPos := Pos('Nombre de disque(s): ', Line); Delete(Line, 1, BeginPos); BeginPos := Pos(';', Line) + 1; EndPos := Pos(' 0 then begin Delete(Line, 1, BeginPos - 1); EndPos := Pos('"', Line); Value := Copy(Line, 1, EndPos - 1); GetPicture(Value); end; // description BeginPos := Pos('

', Line); Delete(Line, 1, BeginPos + 2); EndPos := Pos(#13, Line); Value := StringReplace(Copy(Line, 1, EndPos - 1), '

', #13#10#13#10); HTMLRemoveTags(Value); HTMLDecode(Value); SetField(FieldDescription, Value); // rating BeginPos := Pos('note globale', Line); if BeginPos > 0 then begin Delete(Line, 1, BeginPos); BeginPos := Pos('', Line); if BeginPos > 0 then begin BeginPos := BeginPos + 3; EndPos := Pos(',', Line); Value := Copy(Line, BeginPos, EndPos - BeginPos); SetField(fieldRating, Value); end; end; Page := TStringList.Create; BeginPos := Pos('', Line); Delete(Line, 1, BeginPos); EndPos := Pos('', Line); Page.Text := Copy(Line, 1, EndPos); // titre original SetField(fieldOriginalTitle, GetInfo('Titre original', Page)); // director SetField(fieldDirector, GetInfo('Réalisateur(s)', Page)); // actors SetField(fieldActors, StringReplace(GetInfo('Acteurs', Page), ' - ', ', ')); // country SetField(fieldCountry, GetInfo('Pays', Page)); // year SetField(fieldYear, GetInfo('Année', Page)); // studio (producer) SetField(fieldProducer, GetInfo('Studio', Page)); // category SetField(fieldCategory, GetInfo('Genres', Page)); // format vidéo SetField(fieldVideoFormat, GetInfo('Format vidéo', Page)); // length Value := GetInfo('Durée', Page); EndPos := Pos('min', Value); SetField(fieldLength, Copy(Value, 1, EndPos - 2)); // Sous-titres BeginPos := Pos('SOUS-TITRES', Line); Delete(Line, 1, BeginPos); BeginPos := Pos('', Line); Delete(Line, 1, BeginPos); BeginPos := Pos('', Line); Delete(Line, 1, BeginPos + 96); Value := Copy(Line , BeginPos , Length(Line)); EndPos := Pos('', Value); Value := Copy(Value , 1, EndPos -5); HTMLRemoveTags(Value); HTMLDecode(Value); SetField(fieldSubtitles, Value); // special features (comments) BeginPos := Pos('Les Bonus', Line); Delete(Line, 1, BeginPos); EndPos := Pos('', Line); Delete(Line, EndPos, Length(Line)); FullValue := ''; repeat BeginPos := Pos('', Line); Delete(Line, 1, BeginPos); BeginPos := Pos('', Line); if BeginPos > 0 then begin BeginPos := Pos('', Line); if BeginPos > 0 then begin Value := Copy(Line, BeginPos + 3, Length(Line)); EndPos := Pos(#10, Value); Value := StringReplace(Copy(Value, 1, EndPos - 1), '
', ' '); HTMLRemoveTags(Value); HTMLDecode(Value); FullValue := FullValue + '- ' + Value + #13#10; end; end; until (Pos('', Line) = 0) or (Pos('', Line) = 0); if FullValue <> '' then SetField(fieldComments, 'Bonus:' + #13#10 + FullValue); Page.Free; //DisplayResults; end; function GetInfo(Name: string; Page: TStringList): string; var LineNr, BeginPos, EndPos: Integer; Value, Line: string; begin LineNr := FindLine(Name, Page, 0); if LineNr > 0 then begin Line := Page.GetString(LineNr); BeginPos := Pos(': ', Line) + 7; EndPos := Pos('
', Line); Value := Copy(Line, BeginPos, EndPos - BeginPos); HTMLRemoveTags(Value); HTMLDecode(Value); Result := Value; end else Result := ''; end; begin if CheckVersion(3,5,0) then begin MovieName := GetField(fieldOriginalTitle); if MovieName = '' then MovieName := GetField(fieldTranslatedTitle); if Input('DVDZone2 (FR) Import', 'Entrez le titre du film:', MovieName) then begin GetPage('http://www.dvdzone2.com/language.asp?id=fra&dest=dvd'); AnalyzePage('http://www.dvdzone2.com/dvd/search.asp?t=1&kw=' + UrlEncode(MovieName) + '&kwt=t&pl=all'); end; end else ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)'); end.